package com.module.aichat.data.protocol

import com.beust.klaxon.TypeAdapter
import com.module.aichat.data.bean.ChatMessageType
import com.module.aichat.data.protocol.messageContent.ImageMessageContent
import com.module.aichat.data.protocol.messageContent.MessageContent
import com.module.aichat.data.protocol.messageContent.TextMessageContent
import kotlin.reflect.KClass

/**
 * 作者：sosou
 * <p>
 * 版本：1.0
 * <p>
 * 创建日期：2025/6/30
 * <p>
 * 描述：自定义的Json解析器
 * <p>
 * 修订历史：
 */
class MessageContentTypeAdapter : TypeAdapter<MessageContent> {
    override fun classFor(type: Any): KClass<out MessageContent> {
        return when (type as String) {
            ChatMessageType.TEXT.type -> {
                TextMessageContent::class
            }

            ChatMessageType.IMAGE.type -> {
                ImageMessageContent::class
            }

            else -> {
                throw IllegalArgumentException("unknown type $type")
            }
        }
    }
}